﻿#include "DarkSkinIncludes.h"

namespace vl
{
	namespace presentation
	{
		namespace user_resource
		{
			using namespace collections;
			using namespace stream;
			using namespace controls;

			class DarkSkinResourceReader
			{
			public:
				static const vint parserBufferLength = 1727; // 4460 bytes before compressing
				static const vint parserBufferBlock = 1024;
				static const vint parserBufferRemain = 703;
				static const vint parserBufferRows = 2;
				static const char* parserBuffer[2];

				static void ReadToStream(vl::stream::MemoryStream& stream)
				{
					DecompressStream(parserBuffer, true, parserBufferRows, parserBufferBlock, parserBufferRemain, stream);
				}
			};

			const char* DarkSkinResourceReader::parserBuffer[] = {
				"\x6C\x11\x00\x00\xB7\x06\x00\x00\x52\x00\x01\x82\x80\x00\x81\x80\x1E\x29\x65\x73\x2F\x35\x32\x3B\x31\x33\x26\x65\x74\x21\x24\x31\x32\x88\x10\x27\x61\x6D\x25\x3D\x12\x14\x21\x30\x39\x6B\x53\x2B\x29\x3E\x32\x10\x10\x2B\x65\x72\x33\x29\x3F\x36\x34\x8F\x18\x2E\x30\x22\x1E\x1C\x1C\x21\x32\x38\x65\x6E\x24\x39\x93\x31\x35\x85\x17\x34\xAF\x08\x8A\x8C\x86\x84\x88\x89\x14\x92\xBE\x05\x03\x82\x80\x05\xA6\x01\xCF\x81\x89\x2E\x33\x3A\x88\x37\x0E\x8D\x10\xA0\x0A\xAB\xA9\xAB\xAB\x0E\xD3\x34\x39\x3C\x35\x33\x01\xAD\x67\x81\x84\x2F\x33\x34\x03\xAC\xB7\x01\xD4\x25\x38\x34\x3F\x07\xAC\xBB\x01\xC3\x2C\x21\x33\x3B\x38\x8C\x8D\x08\xE3\x2F\x32\x34\x33\xAC\x01\xB4\x4D\xD2\x89\xC2\x8E\x88\x92\x90\x92\x86\x86\xCA\x1B\xA1\x0C\xCA\x80\x21\x7C\xE5\x2C\x24\x95\x33\xB7\x31\x3A\x1A\xEE\x34\x33\x36\xC1\x03\xAC\x01\x6F\xA9\xEA\xBF\x8B\x36\x5F\xAC\xD7\x06\x9E\xF4\x83\x2D\x94\x39\x9C\x3A\x40\xBC\x22\xA4\xB9\x84\x9B\xDD\xB2\x20\x6E\x19\x9B\x82\x13\x12\x9A\x33\x61\x75\x2C\x34\x3D\x17\x26\x3B\x94\x72\x69\x3B\x93\x9C\x1A\xC0\x37\xC1\x3E\x23\x06\x3B\xEC\xEC\x1F\x16\xEB\xD8\xDE\xFF\xC5\x3E\xDB\xB0\xE0\xE1\x1A\x9C\xA3\x13\x2A\xCD\x33\x30\x3A\x2C\xEE\x0D\xEF\xE2\x39\xEB\xE8\x9A\xE0\xF2\x19\xFC\xED\xEF\xEF\x37\xEB\xFA\x7C\x02\x1B\x1A\xF9\x59\x70\x0C\x0C\x37\x01\x13\x13\x10\xDE\x43\x85\x82\x78\xE6\x64\x70\x84\x6F\x73\x01\x52\x6E\x61\x06\x1B\x59\x85\x40\x42\x35\x14\x1C\x1D\x2D\x51\x62\x8B\x62\x50\x4A\x6E\x64\x68\xB7\x63\x8A\x88\x00\x70\x4D\x5D\x88\x13\x69\x16\x5B\x8B\x88\x2D\x83\x4D\x89\x13\x31\xA3\x13\x8E\x88\x1B\x8D\x5D\x8E\x14\x69\x22\x12\x19\x88\x3B\x98\x8A\x86\x40\x53\x23\x12\x1F\x7F\x6C\x05\x96\x60\x62\x03\x48\x64\x15\x18\x62\x0E\x9B\x55\x02\x57\x82\x44\x17\x1B\xFF\x56\x51\x74\x1C\x56\x90\x5D\x8F\x40\x3D\x97\x14\x48\x19\x6F\x37\x11\x99\x53\x0C\x1B\x5D\x99\x40\x47\x21\x13\x1B\x11\x39\x74\x6E\x1A\x19\x69\x27\x15\x92\x69\x50\x50\x92\x40\x62\x43\x30\x10\x9B\x56\x4C\x7D\x9B\x55\x57\x4D\x48\xA1\xA0\x1C\xB4\x6D\x10\x1E\x1C\x09\x73\x15\x18\x19\x14\x1B\x55\xA7\x6A\x8E\x63\x4E\x1B\x50\x0B\x4D\x45\x1A\x0B\x63\x02\xAE\x9D\x40\x35\x82\x4D\x8B\x5F\x65\x0A\x63\x42\x89\xAC\x4F\x6E\x1B\xA8\x5C\x47\xA2\x42\x13\x83\x6D\x11\x18\x1B\x54\x63\x1C\x19\x1D\x3B\x50\x0B\x56\xAF\x01\x6E\x0E\x0B\x0B\xC2\x84\xB3\xB1\x9C\x63\x15\x19\x12\x0B\x68\x30\xA5\x64\x54\xCF\x84\x45\x1A\x19\x65\x6F\x71\x7D\xAE\xBB\xBB\x49\x0F\x56\xDB\x81\xB3\xB1\xB1\xC5\x88\x44\xB6\x7B\xF0\x6D\x4F\x08\x15\x79\x38\x46\x4F\x1C\x4A\xA9\x10\x1C\x88\x2A\x6F\x07\x11\x1D\x69\x22\xB5\xB5\xB9\x6E\x10\x1B\xAF\x19\x24\x4C\xB0\xAF\x9B\x6C\x88\x9D\xA6\x43\x46\x3F\x7B\x4E\x1C\x63\x82\x4D\x8F\x14\x03\xE5\x16\x63\x02\x5B\x50\xC1\x40\x14\x90\x82\x6E\xA1\x1A\x65\x45\x6B\x54\x9F\x2E\xB7\x5E\xC5\x5E\x7B\x7D\x58\xA9\x60\x83\x64\x15\x13\xC7\x4D\x78\x50\x00\x45\x20\x73\x1A\xA6\x0E\x3A\x14\x18\x19\x19\x1A\x58\x0B\x56\xCD\x01\x6C\xCB\x1A\xCB\x24\x70\xCD\x87\x87\x2D\x72\x5E\xA3\x5E\xB6\x5A\x0B\x56\xD1\x39\xEC\x6C\xCE\x1B\x30\xC3\x13\xCF\x18\x6B\x02\x1F\x18\x1E\x42\xF0\x14\xD1\x19\x1D\x1B\x59\xD5\xD2\x2D\xEF\xCA\x0E\x14\x13\x6C\x4F\xCC\x88\x6E\x15\xD7\xD7\x07\x5B\x68\xDC\xD7\xCE\x5E\xE7\x81\x68\x1D\x4C\x14\x9A\x66\xD9\x15\x65\x11\x0B\x56\x77\xEB\xDB\xD0\xCC\x6E\xF7\x62\x5C\x5D\x52\xD4\xD4\xCE\xD5\x75\xE0\x0B\x56\xE1\x7A\xED\xDC\x58\x8A\xA2\x56\x1E\x4F\x1D\x29\x74\xD5\xD3\xD1\x02\x7A\xCB\xDE\x0E\x8D\x83\x91\xE2\xE4\x65\x24\x0B\x56\xE7\x89\xFD\xCA\x0D\x11\x78\x30\x11\x1A\x4E\x24\x67\x16\x4E\x60\x72\x15\x43\x60\xE7\x88\xCD\x51\xEE\xE5\x5E\xC9\x16\x6D\x1B\x98\x50\xD7\x1B\x92\x75\x3A\x4C\xE6\x09\x5B\x40\xF1\xE8\xD3\x3A\x30\x86\x56\xE3\x65\x37\x14\x6F\xAE\x6D\x2E\x18\x11\x19\x13\x51\xE3\xE3\xD5\x48\xCD\x55\xF4\xED\xA2\xC6\xF4\x1C\xF2\x77\x1C\xE5\xF7\x40\xD7\xCA\xDE\xD7\xDF\x70\xF1\x84\x1E\xF7\x94\xC3\xF0\xCC\x15\x90\xA5\x1C\xF4\xE7\x1C\x1B\x51\xFE\xFA\x3A\x1E\x46\x6F\xD8\x41\xD3\xF5\xDF\xFC\x4D\x7C\xF8\xF4\xF1\xF6\x65\x0C\x14\x69\x00\x6A\xE9\x43\x6D\x6E\xDF\x62\x21\xF8\x5D\x62\x75\x23\x3C\x70\x0E\x9B\x7A\x7E\x6D\x17\x0B\x2A\x0A\xB4\x79\x6E\x62\x13\x6E\x04\xD8\x6A\x6B\xCA\x62\x7A\x74\x53\x08\x0F\x60\x74\x0F\x32\x3A\x0B\x0D\x0C\x79\x1C\x72\x08\x5B\x2B\x84\xFA\x40\x4A\x48\x2D\x33\x0A\xD5\x69\x04\x0F\x20\x35\x39\x4D\x9C\x6A\x6D\x53\x3A\x8F\x7E\x98\x6F\x83",
				"\x48\x6E\x18\x7D\x55\x1C\x7D\x05\xAD\x05\x8E\x85\x41\x40\x89\x9C\x6C\x05\x2C\x39\x39\x0C\x08\x4B\x50\x0C\x9A\x77\x01\x88\x0F\x64\x6C\x73\x27\x1B\x29\x16\xC8\x80\x86\x37\x0B\x8D\x89\x79\x16\x74\xCD\x5A\x79\x87\xB4\x5E\x84\x81\xC4\x7F\x85\x4B\x5F\x89\x25\x14\x9B\x81\x05\x5B\x30\x8C\x17\xCA\x8F\x80\xD2\x66\x72\x27\x42\x9C\x71\xDE\x4D\x2B\x8F\x1E\x9F\x69\x89\x6B\x8F\x80\x44\x6E\x05\x0E\xCE\x5B\x6D\x29\x87\x9E\x8E\x1A\xDE\x8F\x80\x3D\xB8\x6F\x8C\x6C\x62\x77\x22\xC9\x02\x30\x37\x18\x82\x83\x07\x96\x37\x08\x5B\x2B\x93\x39\xAD\x21\x6E\x72\x07\x0D\x19\x79\x8B\x83\x15\x1B\x2E\x94\x9E\x96\x93\x47\x22\x90\x8B\x37\x12\x89\x4D\x55\x80\x69\xD9\x1B\x88\x05\xAD\x35\x91\x95\xA0\x82\x96\x0C\x9B\x34\x0E\x52\x99\x95\x0C\x9D\x8D\x29\x30\x8A\x90\x90\x37\x13\x0E\x56\x4C\x9E\x94\xE1\x36\x38\x95\xA6\x0D\x9C\x98\x5D\x87\x9B\xAD\x6C\x0D\x95\x57\x94\x8A\x99\x57\x62\x79\x53\x5A\x90\x9A\x20\x92\x9C\x89\x94\x9F\x92\xDC\x6C\x0C\x73\x5B\x8D\x2E\x9C\xDD\x91\x84\x32\xEC\x0B\x96\x1A\x98\x9D\x6E\x5B\x8D\x29\x3C\xE9\x95\x6C\x2E\x6C\x0E\x4B\xEE\x4F\x79\xF4\x72\x0C\x73\x12\x1B\x2E\x9F\xA9\x9B\x49\x97\x74\x0F\x4B\x41\x85\x93\x83\x2D\x8D\x29\x42\xF4\x92\xA1\x7B\x84\xA6\x5D\x73\x1C\x70\xE8\x4D\x23\xA2\x3F\x92\x68\x68\x6D\x09\x4B\x92\x49\x96\x8B\xFC\x7F\x92\x87\x03\x3C\x87\x07\xC4\x78\x08\x8D\x8C\x48\x09\xA7\x64\x0D\x59\x1C\x79\x03\xAD\x2D\xA4\x7E\x25\xAA\x48\x93\x68\x70\x2B\x05\x91\x94\xA4\xEC\x72\x4F\x1A\x06\x8B\x99\x32\x09\xA3\x20\x0B\xA3\xA4\xCC\x4C\x03\x5A\x3A\x26\xA4\xA3\xB2\x86\x91\x07\xF4\x74\x63\x37\x3B\x71\x52\x98\x3C\x9F\x06\xC1\x93\x21\x61\x82\xAF\x8F\x67\x08\x0E\x51\xB2\xA8\xA9\x2B\x9B\x84\x7F\x03\x3E\x7F\x55\xC7\xAC\x0D\xF7\x5B\x83\x8F\x03\x3D\x8F\x55\xDB\x40\x0E\xB2\xAF\x9E\x36\x20\xA2\x22\x48\xE8\x80\x66\x2B\x24\xA8\xA5\x3A\x2B\xA7\x06\xAF\xAD\x28\xBE\xBE\x8E\xAE\x5C\xA4\x9F\x06\x89\x81\x20\x9B\x97\x76\x0A\x39\xA5\x82\x54\xBF\x98\xAC\x81\x2A\xAC\xAE\x31\x74\x4A\x3E\x87\x6F\xAD\x32\x1B\x03\x2B\x97\xB4\x7F\x94\x62\x03\xB2\x9E\x97\x6D\x02\x5B\x20\xB6\x66\xD4\x45\x8C\xA8\x33\xAF\xA6\x30\x66\xA1\x54\x95\xB1\x77\x81\x33\x77\xAA\x06\xA2\x8C\xEE\x1D\xA3\x97\x5F\x9E\x03\x2B\xB7\xB4\x7E\x41\xED\x9F\x42\xCF\xB5\x68\xA0\x4D\x20\xBA\x1F\x8D\xA8\x9F\xB6\xB3\x85\x86\x37\x9D\x7B\x59\x8F\x9A\xB2\x7B\x85\xBD\xB2\x72\x8D\x29\x74\xC3\xBE\xB9\x87\xB0\x0D\x9A\x53\x91\x96\x57\x8C\xBC\xB9\x95\x6B\xAD\xBA\x5F\x54\x2A\x41\xA5\xBB\x86\x48\x97\x74\xB8\xD6\xA3\xBF\x06\xDA\x93\x20\x6E\x9F\xBB\xA0\x5F\x5C\xB4\x74\xF1\x86\xBD\xF1\x60\xBE\x5D\xBC\xB6\x36\x1C\x62\xB9\x27\x83\xBF\x94\xAA\x02\x36\xA8\x64\xE8\xB1\xBF\xE3\xBA\xBC\x73\x99\xAD\x29\x82\xD4\xB0\xBE\x77\x64\xB9\xA4\xF5\xA2\x77\x10\x75\x06\x2B\x37\x2D\x0E\x4E\x04\xBF\x3C\xE7\x00\xC1\x20\x01\xE8\xB0\x73\x14\xC0\x45\x1B\x46\x0D\x74\x8D\x26\x4A\x27\x38\x93\xA8\x27\x91\xC4\x79\x29\x39\x0E\x2A\x34\x64\xC7\x70\x27\xC3\x8A\x96\xAE\xA4\xC5\xEB\x76\x9C\x7C\x70\x0C\x72\xC3\x00",
				};

			class DarkSkinResourceLoaderPlugin : public Object, public IGuiPlugin
			{
			public:

				GUI_PLUGIN_NAME(GacGen_DarkSkinResourceLoader)
				{
					GUI_PLUGIN_DEPEND(GacUI_Res_Resource);
					GUI_PLUGIN_DEPEND(GacUI_Res_TypeResolvers);
#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA
					GUI_PLUGIN_DEPEND(GacUI_Instance_Reflection);
					GUI_PLUGIN_DEPEND(GacUI_Compiler_WorkflowTypeResolvers);
#endif
				}

				void Load(bool controllerUnrelatedPlugins, bool controllerRelatedPlugins)override
				{
					if (controllerRelatedPlugins)
					{
						List<GuiResourceError> errors;
						MemoryStream resourceStream;
						DarkSkinResourceReader::ReadToStream(resourceStream);
						resourceStream.SeekFromBegin(0);
						GetResourceManager()->LoadResourceOrPending(resourceStream, GuiResourceUsage::InstanceClass);
					}
				}

				void Unload(bool controllerUnrelatedPlugins, bool controllerRelatedPlugins)override
				{
				}
			};
			GUI_REGISTER_PLUGIN(DarkSkinResourceLoaderPlugin)
		}
	}
}
